开发者中心
API 概览
API 详情
错误码列表
Class
Class 概览
Class 详情
Interface
Interface 概览
Interface 详情
Enum
Enum 概览
Enum 详情
API 详情
Android 直播 ToB 1.0
更新时间:2023-10-10 11:52:46

KRtcEngine

方法

static
create
public KRtcEngine create(KRtcEngineConfig config)

创建 KRtcEngine 实例。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
config KRtcEngineConfig KRtcEngine 实例的配置,详见 KRtcEngineConfig。
接口详情
  • 详情描述: KRTC Native SDK 只支持每个 app 创建一个 KRtcEngine 实例。

  • 调用时机: 请确保在调用其他 API 前先调用该方法创建并初始化 KRtcEngine。

  • 注意事项: KRtcEngine 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。

  • 使用限制:

返回值:

  • 方法调用成功,则返回一个 KRtcEngine 对象。
  • 方法调用失败,则返回null。
static
destroy
public void destroy()

销毁 KRtcEngine 实例。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 该方法释放 SDK 使用的所有资源。有些 app 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。调用 destroy 方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须重新调用 create 方法创建一个新的 KRtcEngine 实例。

  • 注意事项:
    该方法为同步调用,需要等待 KRtcEngine 实例资源释放后才能执行其他操作,所以我们建议在子线程中调用该方法,避免主线程阻塞。
    此外,我们不建议在 SDK 的回调中调用 destroy,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。

  • 使用限制: 如需在销毁后再次创建 KRtcEngine 实例,需要等待 destroy 方法执行结束后再创建实例。

static
getSdkVersion
public String getSdkVersion()

查询 SDK 版本号。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 查询 SDK 版本号,当前的 SDK 版本号,格式为字符串。例如:6.0.0。

  • 调用时机: 该方法在加入频道前后都能调用。

  • 注意事项:
    该方法为同步调用。

返回值: 返回当前的 SDK 版本号。

setParameters
public int setParameters(String parameters)

通过 JSON 配置 SDK 提供技术预览或特别定制功能。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
parameters String JSON 字符串形式的参数。
接口详情
  • 详情描述: 通过 JSON 配置 SDK 提供技术预览或特别定制功能。如果JSON解析失败会返回KWarningCodeSetParametersParseFailed。

返回值:

  • 0: 方法调用成功
  • <0: 方法调用失败。
startPush
public int startPush(String token, String channelId, String streamUrl)

开始直播推流。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
token String 在 app 服务器端生成的用于鉴权的 Token。详见使用 Token 鉴权。
channelId String 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
streamUrl String 推流地址,需要业务层根据指定的规则生成,比如:rtmp://sample.com/app_name/stream_name?ksSecret=1234224247ebd33b74e02234240695d&ksTime=634910c4。
接口详情
  • 详情描述: 该方法可以向指定的地址推直播流。

  • 相关回调:

    • 开始推流后,本地会触发 onPushStreamStateChanged 回调;可以根据该回调给出的状态和原因做后续处理。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
stopPush
public int stopPush(String channelId)

停止直播推流。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
channelId String 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
接口详情
  • 详情描述: 该方法可以停止指定频道内的直播流。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
setConnectRetryCount
public int setConnectRetryCount(int count)

设置推流端重连次数

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
count int 重连次数
接口详情
  • 详情描述: 当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连,通过此函数设置 SDK 重连次数。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
setConnectRetryInterval
public int setConnectRetryInterval(int count)

设置推流端重连间隔

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
count int 重连间隔
接口详情
  • 详情描述: 当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连,通过此函数来设置两次重连间隔时间。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
getPushingStatus
public @PushStreamState int getPushingStatus(String channelId)

获取当前直播推流状态。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
channelId String 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
接口详情
  • 详情描述: 获取指定频道的当前直播推流状态。

返回值:

  • 当前推流状态,具体请参考 PushStreamState。
enableAudio
public int enableAudio()

启用音频模块。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 本方法可以启用音频模块(音频模块默认为开启状态)。该方法与 disableAudio 相对应,如果之前调用过 disableAudio 禁用了音频功能,可以用通过该方法来恢复。

  • 注意事项: 该接口只能在 startPush 之前调用,如果上一次直播调用过 disableAudio, 而本次直播需要开启音频功能,则需要调用该接口。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
disableAudio
public int disableAudio()

关闭音频模块。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 关闭音频模块。该方法与 enableAudio 相对应,会禁用音频模块。

  • 注意事项: 该接口只能在 startPush 之前调用,如果确定本次直播全程是一个纯视频的直播,可以在 startPush 之前调用该接口,从而禁用音频模块,减少内存占用。在开播之后调用会导致直播流异常。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
setLiveAudioProfile
public int setLiveAudioProfile(String channelid, @LiveAudioProfile int profile)

设置音频编码参数。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
channelid String 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
profile @LiveAudioProfile int 设置采样率,码率,编码模式和声道数,详细定义见 LiveAudioProfile。
接口详情
  • 调用时机: 该方法需要在 startPush 之前设置好,startPush 之后设置不生效。

返回值: 调用是否成功 0: 成功, <0: 失败。

adjustRecordingSignalVolume
public int adjustRecordingSignalVolume(int volume)

调节麦克风采集信号音量。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
volume int 麦克风采集信号音量。取值范围为[0,100],其中:

  • 0: 静音。

  • 100:(默认)原始音量。
接口详情
  • 详情描述: 该方法可让用户调整本地麦克风采集信号的音量。

  • 调用时机: 该方法在加入频道前后都能调用。

  • 注意事项: 开启或关闭音频采集不会影响该音量。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
enableLocalAudio
public int enableLocalAudio()

开启本地音频采集。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述:

    • 该方法可以开启本地音频采集,与 disableLocalAudio 相对应。
    • 当 App 加入频道时,它的语音功能默认是开启的。
  • 调用时机:

    • 该方法在加入频道前后均可调用。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
disableLocalAudio
public int disableLocalAudio()

关闭本地音频采集。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 关闭本地音频采集。当 App 加入频道时,默认是开启麦克风采集功能的;该方法可以关闭麦克风采集,但是仍然会发送静音的音频数据,适用于直播过程中需要临时闭麦的场景。

  • 调用时机:

    • 该方法在加入频道前后均可调用。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
enableInEarMonitoring
public int enableInEarMonitoring()

开启耳返功能。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上

接口详情
  • 详情描述: 用户可通过该方法打开耳返功能,该方法与 disableInEarMonitoring 相对应。

  • 调用时机:

    • 该方法在加入频道前后均可调用。
    • 切换用户身份时,需等到用户身份切换成功,即收到onClientRoleChanged回调后,再调用该方法,否则该方法的表现可能不符合预期。
  • 注意事项:

    • 用户必须使用有线耳机才能听到耳返效果。
  • 使用限制: 观众身份不支持对耳返进行设置。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
disableInEarMonitoring
public int disableInEarMonitoring()

关闭耳返功能。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上

接口详情
  • 详情描述: 用户可通过该方法关闭耳返功能,该方法与 enableInEarMonitoring 相对应。

  • 调用时机:

    • 该方法在加入频道前后均可调用。
    • 切换用户身份时,需等到用户身份切换成功,即收到onClientRoleChanged回调后,再调用该方法,否则该方法的表现可能不符合预期。
  • 使用限制: 观众身份不支持对耳返进行设置。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
setInEarMonitoringVolume
public int setInEarMonitoringVolume(int volume)

设置耳返音量。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上

参数信息
参数名 类型 描述
volume int 耳返音量。取值范围为[0,100],其中:

  • 0: 静音

  • 100:(默认)原始音量
接口详情
  • 详情描述: 用户可通过该方法设置耳返音量。

  • 调用时机: 该方法在加入频道前后都能调用。

  • 注意事项:

    • 当调整本地采集音量时,耳返音量会随之变化。
    • 开启或关闭耳返功能不会影响该音量。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
setLocalVoiceChanger
public int setLocalVoiceChanger(@VoiceEffectOption int voicechanger)

设置本地语音变声

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
voicechanger @VoiceEffectOption int 本地语音的变声选项
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

setLocalVoiceReverb
public int setLocalVoiceReverb(@ReverbLevel int reverblevel)

设置本地音效混响

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
reverblevel @ReverbLevel int 需要设置的音效混响
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

enableExternalAudioSource
public void enableExternalAudioSource()

启用外部音频输入,该接口仅支持在 startPush 之前调用。

Declared in KRtcEngine.java

disableExternalAudioSource
public void disableExternalAudioSource()

禁用外部音频输入

Declared in KRtcEngine.java

pushRawAudioFrame
public boolean pushRawAudioFrame(ExternalAudioFrame frame)

推送外部音频帧

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
frame ExternalAudioFrame 外部音频帧
接口详情

返回值: true:该帧推送成功, false:该帧推送不成功

enableAudioVolumeIndication
public int enableAudioVolumeIndication(int interval)

启用用户音量提示。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
interval int 定期反馈音量的时间间隔,单位为毫秒。
接口详情
  • 详情描述: 该方法与 disableAudioVolumeIndication 相对应,定期向应用反馈当前说话的音量,调用该方法后,sdk 会按照设置的时间间隔触发 onAudioVolumeIndication 回调。

返回值: 调用是否成功 0: 成功, <0: 失败

disableAudioVolumeIndication
public int disableAudioVolumeIndication()

禁用用户音量提示。

Declared in KRtcEngine.java

接口详情
  • 详情描述: 该方法与 enableAudioVolumeIndication 相对应,停止 sdk 向应用反馈当前说话者音量。

返回值: 调用是否成功 0: 成功, <0: 失败

enableVideo
public int enableVideo()

启用视频模块。

Declared in KRtcEngine.java

接口详情
  • 详情描述: 本方法可以启用视频模块(视频模块默认为开启状态)。该方法与 disableVideo 相对应,如果之前调用过 disableVideo 禁用了视频功能,可以用通过该方法来恢复。 该方法不会开启camera,如果需要开启camera,请调用enableLocalVideo。

  • 注意事项: 该接口只能在 startPush 之前调用,如果上一次直播调用过 disableVideo, 而本次直播需要开启视频功能,则需要调用该接口。

返回值: 调用是否成功, 0: 成功, <0: 失败。

disableVideo
public int disableVideo()

关闭视频模块。

Declared in KRtcEngine.java

接口详情
  • 详情描述: 关闭视频模块。该方法与 enableVideo 相对应,会禁用视频模块。

  • 注意事项: 该接口只能在 startPush 之前调用,如果确定本次直播全程是一个纯音频的直播,可以在 startPush 之前调用该接口,从而禁用视频模块,减少内存占用。在开播之后调用会导致直播流异常。

返回值: 调用是否成功, 0: 成功, <0: 失败。

enableLocalVideo
public int enableLocalVideo()

开启本地视频采集,调用此方法会开启摄像头采集设备。

Declared in KRtcEngine.java

接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败。

disableLocalVideo
public int disableLocalVideo()

关闭本地视频采集。

Declared in KRtcEngine.java

接口详情
  • 详情描述: 关闭本地视频采集,调用此方法会停止摄像头采集设备,视频流会用黑屏数据代替。

返回值: 调用是否成功, 0: 成功, <0: 失败。

setVideoEncoderConfiguration
public int setVideoEncoderConfiguration(String channelId, VideoEncoderConfiguration config)

设置视频编码参数。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
channelId String 频道ID。
config VideoEncoderConfiguration 视频编码参数。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败。

static
createLocalSurfaceView
public SurfaceView createLocalSurfaceView(Context context)

创建本端视频流 surface 类型的渲染视图。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
context Context Android Activity 上下文。
接口详情

返回值: 渲染视图

static
createLocalTextureView
public TextureView createLocalTextureView(Context context)

创建本端视频流 texture 类型的渲染视图。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
context Context Android Activity 上下文。
接口详情

返回值: 渲染视图

bindLocalVideoView
public int bindLocalVideoView(KVideoCanvas local)

初始化本端视频渲染视图。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
local KVideoCanvas 画布。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

unbindLocalVideoView
public int unbindLocalVideoView(KVideoCanvas local)

解绑本端视频渲染视图。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
local KVideoCanvas 画布。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

setCameraCaptureMirror
public int setCameraCaptureMirror(int mode)

对自定义美颜之前的摄像头原始采集视频画面进行镜像

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
mode int 视频镜像。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

setCameraEncodeMirror
public int setCameraEncodeMirror(boolean enable)

对经过自定义美颜后的准备参与合流编码的摄像头路视频流进行镜像

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
enable boolean 视频是否镜像。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

setLocalRenderMode
public int setLocalRenderMode(int rendermode, boolean ismirror)

对经过自定义美颜后的准备本地预览画面进行镜像

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
rendermode int 视频显示模式。
ismirror boolean 视频是否镜像。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

startPreview
public int startPreview()

启动视频预览,调用该 API 前,需调用 enableLocalVideo 开启摄像头采集设备。

Declared in KRtcEngine.java

接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

stopPreview
public int stopPreview()

停止预览。

Declared in KRtcEngine.java

接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

switchCamera
public int switchCamera()

切换摄像头。

Declared in KRtcEngine.java

接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

startScreenCapture
public int startScreenCapture(NSString* channelid, MediaProjection mediaprojection)

开始屏幕共享

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
channelid NSString* 频道ID
mediaprojection MediaProjection 录屏权限
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

stopScreenCapture
public int stopScreenCapture(NSString* channelid)

结束屏幕共享

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
channelid NSString* 频道ID
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

enableExternalVideoSource
public void enableExternalVideoSource()

启用外部视频输入

Declared in KRtcEngine.java

disableExternalVideoSource
public void disableExternalVideoSource()

禁用外部视频输入

Declared in KRtcEngine.java

pushRawVideoFrame
public boolean pushRawVideoFrame(ExternalVideoFrame frame)

推送外部视频帧

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
frame ExternalVideoFrame 外部视频帧
接口详情

返回值: true:该帧推送成功, false:该帧推送不成功

setBeautyEffectOptions
public void setBeautyEffectOptions(boolean enable, FaceBeautyOptions options)

设置美颜效果选项

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
enable boolean 是否开启美颜
options FaceBeautyOptions 美颜参数
onBackground
public void onBackground(@BackgroundMode int mode)

设置 App 退后台触发的推流模式。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
mode @BackgroundMode int 后台推流模式
接口详情
  • 详情描述: 本方法可以用来设置 App 退后台触发的推流模式,当 APP 退后台时调用该方法通知 SDK 按指定的推流模式推音视频流。

onForeground
public void onForeground()

通知 SDK APP 已经返回前台。

Declared in KRtcEngine.java

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 如果 APP 退后台的时候调用了 onBackground 通知 SDK 设置了相应的推流模式,那么返回前台的时候需要调用该方法恢复退后台之前的推流状态。

startPushImage
public int startPushImage(String channelid, byte[] bitmap)

启用图片推流

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
channelid String 频道ID
bitmap byte[] 图片原始数据,仅支持 jpg 和 png 格式,宽高需要是偶数。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

stopPushImage
public int stopPushImage(String channelid)

停止图片推流

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
channelid String 频道ID
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

addWatermark
public int addWatermark(byte[] image, float x, float y, float scale)

添加水印

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
image byte[] 水印图片原始数据,仅支持 jpg 和 png 格式,宽高需要是偶数。
x float 水印左上角横坐标[0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,则水印的实际像素横坐标为:540 × 0.1。
y float 水印左上角纵坐标[0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,则水印的实际像素纵坐标为:960 × 0.1。
scale float 水印缩放比例(0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,水印宽度为 540 × 0.1,水印高度会被自动计算。
接口详情
  • 详情描述: 设置指定的图片作为直播水印

返回值: 调用是否成功 >0: 成功,返回值表示当前添加的水印 ID,可以通过这个 ID 调用 RemoveWatermakkr 删除指定的水印, <0: 失败

removeWatermark
public int removeWatermark(int watermarkid)

移除水印

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
watermarkid int 水印 ID,成功调用 AddWatermark 时的返回值。
接口详情
  • 详情描述: 移除指定 ID 的水印

返回值: 调用是否成功 0: 成功, <0: 失败

startNetworkProbeTest
public int startNetworkProbeTest()

开始网络质量检测

Declared in KRtcEngine.java

接口详情
  • 详情描述: 在直播过程中调用该方法会开启网络质量检测功能,每 2 秒回调一次 onNetworkQuality 报告当前网络质量。

返回值: 调用是否成功 0: 成功, <0: 失败

stopNetworkProbeTest
public int stopNetworkProbeTest()

停止网络质量检测

Declared in KRtcEngine.java

接口详情
  • 详情描述: 调用该方法后会停止网络质量检测功能。

返回值: 调用是否成功 0: 成功, <0: 失败

getCurrentMediaTimestamp
public long getCurrentMediaTimestamp()

获取当前媒体时间戳

Declared in KRtcEngine.java

接口详情
  • 详情描述: 获取当前媒体时间戳, 用于外部音视频帧中的timestamp。

返回值: 返回当前媒体时间戳。

sendSeiMessage
public int sendSeiMessage(String channelId, byte[] data, int repeatCount)

发送自定义的 SEI 消息

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
channelId String 频道ID
data byte[] 发送的数据,最大长度为 1000字节。
repeatCount int 发送数据次数
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

setZoom
public int setZoom(float distance)

调整摄像头的焦距

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
distance float 焦距大小,取值范围:1 - 5,默认值建议设置为1即可
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

toggletorch
public int toggletorch(boolean enable)

打开后置摄像头旁边的闪光灯

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
enable boolean true:打开;false:关闭。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

setWallClockTime
public int setWallClockTime(long epochms)

设置时钟,用于计算直播延时。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
epochms long epoch 时钟,单位是毫秒。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

setRenderRotation
public int setRenderRotation(int rotation)

设置本端视频预览旋转角度,该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
rotation int 取值为0、90、180和270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

snapshot
public void snapshot()

推流过程中本地截图

Declared in KRtcEngine.java

setMetaData
public int setMetaData(HashMap<String,String> metadata)

设置自定义MetaData

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
metadata HashMap<String,String> 非空metaData键值对
enableCustomVideoProcess
public int enableCustomVideoProcess(boolean enable, boolean isUseNewTexture)

开启/关闭自定义视频处理

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
enable boolean 开关
isUseNewTexture boolean true: 输出纹理使用第三方美颜生成的新纹理 false: 使用sdk的纹理
registerMediaFrameObserver
public int registerMediaFrameObserver(IMediaFrameObserver observer)

注册原始媒体数据观测器

Declared in KRtcEngine.java

参数信息
参数名 类型 描述
observer IMediaFrameObserver 原始媒体数据观测器

IKRtcEngineEventHandler

方法

onPushStreamStateChanged
public void onPushStreamStateChanged(String channelId, @PushStreamState int state, @PushStreamError int error)

直播推流状态回调。

Declared in IKRtcEngineEventHandler.java

参数信息
参数名 类型 描述
channelId String “频道 id。"
state @PushStreamState int 当前推流状态,请参考 PushStreamState。
error @PushStreamError int 推流初始时给出的错误码,请参考 PushStreamError。
接口详情
  • 详情描述: 直播推流状态改变时会回调该接口,发生错误时,会有相应错误码。

onNetworkQuality
public void onNetworkQuality(String channelId, String userId, @NetworkQuality int txQuality, @NetworkQuality int rxQuality)

报告当前网络质量。

Declared in IKRtcEngineEventHandler.java

参数信息
参数名 类型 描述
channelId String “频道 id。"
userId String 用户 id。
txQuality @NetworkQuality int 上行网络质量。
rxQuality @NetworkQuality int 下行网络质量。
接口详情
  • 详情描述: 当调用 startNetworkProbeTest 方法后,会每 2秒 回调一次该方法报告当前网络质量。

onPushStats
public void onPushStats(KPushStats stats)

报告当前直播推流相关指标。

Declared in IKRtcEngineEventHandler.java

参数信息
参数名 类型 描述
stats KPushStats 推流指标。
接口详情
  • 详情描述: 直播推流成功后,会每 2秒 回调一次该方法报告当前推流相关指标。

onAudioVolumeIndication
public void onAudioVolumeIndication(KRtcEngineAudioVolumeInfo[] audiovolumeinfo)

用户音量提示回调。

Declared in IKRtcEngineEventHandler.java

参数信息
参数名 类型 描述
audiovolumeinfo KRtcEngineAudioVolumeInfo[] 用户音量信息,直播场景只有本端音量信息。
接口详情
  • 详情描述: 该回调默认禁用,您可以通过 enableAudioVolumeIndication 开启,开启后,SDK 会按照在 enableAudioVolumeIndication 中设置的时间间隔触发该回调。

onWarning
public void onWarning(String channelId, @WarningCode int warning)

发生警告回调。

Declared in IKRtcEngineEventHandler.java

支持版本: 6.0.0 及以上

参数信息
参数名 类型 描述
channelId String 房间 ID。
warning @WarningCode int 警告代码,详细定义见 KRtcEngineWarningCode。
接口详情
  • 详情描述: 该回调方法表示 SDK 运行时出现了警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。

onError
public void onError(String channelId, @ErrorCode int error)

发生错误回调。

Declared in IKRtcEngineEventHandler.java

支持版本: 6.0.0 及以上

参数信息
参数名 类型 描述
channelId String 房间 ID
error @ErrorCode int 错误代码,详细定义见 KRtcEgnineErrorCode。
接口详情
  • 详情描述: 表示 SDK 运行时出现了错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。

onSnapshot
public void onSnapshot(Bitmap bmp)

推流过程中本地截图回调。

Declared in IKRtcEngineEventHandler.java

参数信息
参数名 类型 描述
bmp Bitmap 截图保存对象
onOpenCameraSuccess
public void onOpenCameraSuccess()

打开摄像头成功回调。

Declared in IKRtcEngineEventHandler.java

onStartVideoEncoder
public void onStartVideoEncoder(String channelId)

视频编码器启动回调。

Declared in IKRtcEngineEventHandler.java

参数信息
参数名 类型 描述
channelId String 房间 ID
onFirstLocalVideoFramePublished
public void onFirstLocalVideoFramePublished(int elapse)

首帧视频发送成功的回调通知

Declared in IKRtcEngineEventHandler.java

参数信息
参数名 类型 描述
elapse int 从本地开始推流到发生此事件过去的时间(毫秒)

IMediaFrameObserver

方法

onProcessVideoFrame
public int onProcessVideoFrame(RawVideoFrame srcframe, RawVideoFrame dstframe)

用于对接第三方美颜组件的视频处理回调

Declared in IMediaFrameObserver.java

参数信息
参数名 类型 描述
srcframe RawVideoFrame 用于承载采集到的摄像头画面
dstframe RawVideoFrame 用于接收第三方美颜处理过的视频画面
接口详情

返回值: 0: 使用第三方美颜。-1: 使用原始摄像头画面

onGLContextDestroyed
public void onGLContextDestroyed()

SDK 内部的 OpenGL 环境的销毁通知

Declared in IMediaFrameObserver.java